package com.jiuli_travel.blog_service.model.vo;

import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.jiuli_travel.blog_service.model.entity.Blog;
import com.jiuli_travel.user_service.model.vo.UserVO;
import com.jiuli_travel.utils.PageDTO;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Data
public class BlogVO {

    /**
     * id
     */
    private Long id;

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 用户信息
     */
    private UserVO userVO;

    /**
     * 标题
     */
    private String title;

    /**
     * 推荐话题标签
     */
    private List<String> recommendedTopicTagList;

    /**
     * 艾特用户
     */
    private List<String> aiteUserList;

    /**
     * 图片
     */
    private List<String> imageList;

    /**
     * 内容
     */
    private String content;

    /**
     * 点赞数
     */
    private Integer likedCount;

    /**
     * 评论数
     */
    private Integer comments;

    /**
     * 浏览次数
     */
    private Integer viewCount;

    /**
     * 收藏次数
     */
    private Integer collectCount;

    /**
     * 分享次数
     */
    private Integer shareCount;

    /**
     * 是否点赞
     */
    private boolean likedFlag = false;

    /**
     *  是否收藏
     */
    private boolean collectFlag = false;

    /**
     * 评论信息
     */
    private PageDTO<BlogCommentVO> commentsList;


    /**
     * JsonStr To List
     */
    public void doJsonStrToList(String images, String recommendedTopicTags, String aiteUsers){
        // 1. 对于Json格式的数据转化为List
        // 1.1 recommendedTopicTags
        List<String> recommendedTopicList = JSONUtil.parseArray(recommendedTopicTags).toList(String.class);
        this.setRecommendedTopicTagList(recommendedTopicList);
        // 1.2 aiteUsers
        List<String> aiteUserList = JSONUtil.parseArray(aiteUsers).toList(String.class);
        this.setAiteUserList(aiteUserList);
        // 1.3 images
        List<String> imageList = JSONUtil.parseArray(images).toList(String.class);
        this.setImageList(imageList);
    }
}
